/*
 * WriteLn.h
 *
 *  Created on: 17.04.2012
 *      Author: Eugene Kornykhin
 */

#ifndef WRITER_H_
#define WRITER_H_

#include "../Interpreter.h"

class Writer
{
public:
	virtual void write(Interpreter &) const = 0;
	virtual string toString() const = 0;
	virtual Writer *clone() const = 0;
	virtual ~Writer() {}
};


class WriteInt : public Writer {
public:
	virtual void write(Interpreter &) const;
	virtual Writer *clone() const;
	virtual string toString() const;
};

class WriteLn : public Writer {
public:
	virtual void write(Interpreter &) const;
	virtual Writer *clone() const;
	virtual string toString() const;
};

class WriteString : public Writer {
public:
	virtual void write(Interpreter &) const;
	virtual Writer *clone() const;
	virtual string toString() const;
};

#endif /* WRITER_H_ */
